package com.cande.loki.exercise.algorithm.od;

import java.util.Scanner;

/**
 * 停车场问题
 */
public class Cars {
    public static int minParkingCount(int[] cars) {
        int count = 0; // 统计停车数
        int i = 0; // 遍历索引

        while (i < cars.length) {
            if (cars[i] == 1) { // 找到车辆
                if (i + 2 < cars.length && cars[i + 1] == 1 && cars[i + 2] == 1) {
                    // 大车（占三个车位）
                    count++;
                    i += 3; // 跳过三个车位
                } else if (i + 1 < cars.length && cars[i + 1] == 1) {
                    // 货车（占两个车位）
                    count++;
                    i += 2; // 跳过两个车位
                } else {
                    // 小车（占一个车位）
                    count++;
                    i++; // 只跳过一个车位
                }
            } else {
                i++; // 当前车位为空，移动到下一个车位
            }
        }

        return count;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入停车场状态（以逗号分隔，如 1,0,1）：");
        String input = scanner.nextLine();

        int[] cars = parseInput(input);
        int result = minParkingCount(cars);

        System.out.println("最少停车数目为: " + result);
    }

    // 辅助方法：解析输入字符串为整型数组
    private static int[] parseInput(String input) {
        String[] parts = input.split(",");
        int[] cars = new int[parts.length];
        for (int i = 0; i < parts.length; i++) {
            cars[i] = Integer.parseInt(parts[i].trim());
        }
        return cars;
    }
}
